package com.dukun.es.repository;

import com.dukun.es.common.repository.BaseEsCrudRepository;
import com.dukun.es.common.repository.BaseEsSearchRepository;
import com.dukun.es.entity.es.EsUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.PagingAndSortingRepository;

import java.util.List;

/**
 * 这里的接口可以一般是继承Repository、CrudRepository、PagingAndSortingRepository、ElasticsearchRepository、自定义的Repository
 *          Repository：相当于是一个标识，没有定义任何的接口
 *          CrudRepository：封装了基本的增、删、改、查
 *          PagingAndSortingRepository：提供了分页和排序的功能
 *
 * Author：DK
 * Description：EsUser Dao接口
 */
public interface UserRepository extends ElasticsearchRepository<EsUser, Long> {

    /**
     * 根据用户名查找用户
     *
     * @param username 用户名
     * @return 符合条件的用户列表
     */
    List<EsUser> findEsUsersByName(String username);

    /**
     * 根据用户名删除用户
     *
     * @param username 用户名
     * @return 是否删除
     */
    long deleteEsUserByName(String username);

}
